package com.jimikongjian.dao;

import com.jimikongjian.models.Like;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by fuxiuyang on 17/2/20.
 */
public interface ILike {

    /**
     * 通过自身的id号，获取某一确定的收藏文章的信息
     * @param id
     * @return List<Like>
     */
    public List<Like> getLikeListById(int id);

    /**
     * 通过自身的id号，获取某一确定的收藏文章的信息
     * @param id
     * @return Like
     */
    public Like getLikeById(int id);

    /**
     * 通过用户获取用户收藏的文章
     * @return List<Like>
     */
    public List<Like> getLikeListByUserId(int userId);

    /**
     * 通过用户id和文章id获取用户收藏的文章
     * @return List<Like>
     */
    public List<Like> getLikeListByUserIdAndArticleId(@Param("userId") int userId, @Param("articleId") int articleId);

    /**
     * 判断用户是否已经收藏了该文章
     * @param userId
     * @param articleId
     * @return
     */
    public boolean hasLike(int userId, int articleId);

    /**
     * 通过文章的id获取收藏该文章的所有用户
     * @return List<Like>
     */
    public List<Like> getLikeListByArticleId(int articleId);

    /**
     * 增加一个收藏
     * @param like
     */
    public void insertLike(Like like);

    /**
     * 更新一个收藏
     * @param like
     */
    public void updateLike(Like like);

    /**
     * 删除一个收藏
     * @param like
     */
    public void deleteLike(Like like);
}
